package day4.作业1026.作业03;

public class Test {
//    构造方法
//    public object(){
//
//    }
// 1.getClass方法
//
//            获取运行时类型,返回值为Class对象
//2.hashCode方法
//
//    返回该对象的哈希码值，是为了提高哈希表的性能（HashTable）
//
// 3.equals方法
//
//    判断两个对象是否相等，在Object源码中equals就是使用==去判断，所以在Object中equals是等价于==的，但是在String及某些类对equals进行了重写，实现不同的比较。
//
//4.clone方法
//
//    主要是JAVA里除了8种基本类型传参数是值传递，其他的类对象传参数都是引用传递，我们有时候不希望在方法里将参数改变，这时就需要在类中复写clone方法。
//
//            如果在clone方法中调用super.clone()方法需要实现Cloneable接口,否则会抛出CloneNotSupportedException。
//
//    此方法只实现了一个浅层拷贝,对于基本类型字段成功拷贝,但是如果是嵌套对象,只做了赋值,也就是只把地址拷贝了,所以没有成功拷贝,需要自己重写clone方法进行深度拷贝。
//
//5.toString方法
//
//    返回一个String字符串,用于描述当前对象的信息,可以重写返回对自己有用的信息，默认返回的是当前对象的类名+hashCode的16进制数字。
//
//6.wait方法
//
//    多线程时用到的方法，作用是让当前线程进入等待状态，同时也会让当前线程释放它所持有的锁。直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法，当前线程被唤醒
//
//7.notify方法
//
//    多线程时用到的方法，唤醒该对象等待的某个线程
//
//8.notifyAll方法
//
//    多线程时用到的方法，唤醒该对象等待的所有线程
//
//9.finalize
//
//    对象在被GC释放之前一定会调用finalize方法，对象被释放前最后的挣扎,因为无法确定该方法什么时候被调用，很少使用。
}
